home *** CD-ROM | disk | FTP | other *** search
/ PC Media 15 / PC MEDIA CD15.iso / helpline / get27 / get27new.doc < prev    next >
Encoding:
Text File  |  1987-11-26  |  28.3 KB  |  616 lines

  1.  
  2.   GET27NEW.DOC - New features in GET.EXE 2.7 - Copyright 1995 Bob Stephan
  3.  
  4.   This file summarizes the new and improved features in GET.EXE 
  5.   Version 2.7. If you have been using an older version of GET, read 
  6.   this file to find out what has been changed, and what has been added.  
  7.  
  8.   Some of the more interesting new features described below are:
  9.  
  10.   * Test for write protected diskettes (GET K, Q, and L).
  11.   * Support for International Dates and Times (GET H and F).
  12.   * Other new date formats that can be used to compare file
  13.     dates or create unique file names (GET F).
  14.   * Read and create lower case Environment variable names (&var),
  15.   * Sound Bytes: play tones on the speaker (/S).
  16.   * File full path or "True Name" reporting (GET FP).
  17.   * New logical math functions (GET R).
  18.   * Locate the boot drive (GET Y).
  19.   * Read variables from the master Environment (GET Z).
  20.   * Create Environment variable strings up to 255 bytes long (GET S and Z).
  21.   * Improved reporting of information on network drives (GET K, Q, and L).
  22.  
  23.   Pricing, licensing, and copyright.
  24.   ---------------------------------------------------------------
  25.   GET 2.7 is released as shareware with a requested registration fee of 
  26.   $15 plus $2 shipping and handling to U.S.A, Canada, or Mexico, or 
  27.   $4 to other countries.  Registered users of any previous version of 
  28.   GET can upgrade to registered version 2.7 for $6 plus S&H 
  29.   regardless of the number of copies authorized on a previous site 
  30.   license.  All previous individual, site, and distribution licenses 
  31.   remain in effect.  If you need to increase the number of copies for 
  32.   which you are licensed please contact us for incremental pricing 
  33.   information.  Note that Version 2.5 was the last version that was
  34.   released as free for non-commercial use.  Registered users of any
  35.   version of GET may use Version 2.7 shareware version for an 
  36.   unlimited time without upgrading if they so prefer.
  37.  
  38.   The new version of GET.EXE is temporarily named GET27.EXE to 
  39.   preclude inadvertent overwriting of previous versions.  When you 
  40.   are ready to switch over to version 2.7, rename GET27.EXE to 
  41.   GET.EXE and place it in your utility directory on your path.
  42.  
  43.   The full manual which is now commercially produced can be included 
  44.   with new registrations or ordered later by registered users for $8.  
  45.   An additional $2 S&H is required for each manual. (Postage is getting 
  46.   more expensive). These prices are subject to change. See ORDER.GET 
  47.   for additional pricing information.
  48.  
  49.   The shareware version of GET will display the copyright notice the 
  50.   first time it is invoked and periodically after that as it is used.  
  51.   GET checks the Environment block to determine whether it has been 
  52.   run prior to the current call. The g$$= variable (notice the lower 
  53.   case g) is created by GET to keep track of the number of times GET 
  54.   has been called for the purpose of displaying the copyright notice.
  55.  
  56.   The registered runtime version never displays the copyright notice 
  57.   except when it is called with no valid arguments.  The runtime version
  58.   for registered users is under 6K in size.  See additional information
  59.   below about the runtime version.
  60.  
  61.   NEW AND MODIFIED FEATURES.
  62.   ---------------------------------------------------------------
  63.   One completely new function (see GET FP below) has been added, and 
  64.   several of the existing functions have been enhanced to provide 
  65.   many new features as described below. Help screens have been 
  66.   updated and enhanced. To see the help screens issue the GET command 
  67.   at a DOS prompt with no arguments.
  68.  
  69.   The GET command information below is arranged alphabetically 
  70.   according to the GET command character. But first, a discussion
  71.   of new and changed switches and a few miscellaneous items.
  72.  
  73.   A problem was discovered in Version 2.62 which was released but 
  74.   rapidly withdrawn.  It reported incorrect file size information in
  75.   the ErrorLevel.  Version 2.63 was released to fix the problem, but
  76.   there may be some copies of 2.62 in circulation.  Replace any
  77.   copies of 2.62 with either 2.63 or this release.  This does not 
  78.   apply to version 2.61 or earlier.  No new features were added in
  79.   2.62 or 2.63.
  80.  
  81.   SWITCHES, PARAMETERS, AND OTHER NOTABLE NEW FEATURES
  82.   -----------------------------------------------------------------
  83.   GET Z "&var" 
  84.  
  85.   Using "&var" in the "prompt" argument for GET Z, where 'var' is the 
  86.   name of an Environment variable, will read the named variable value
  87.   directly from the environment without using DOS to substitute the 
  88.   value for the name.  When read this way the variable name is case 
  89.   sensitive so must be entered exactly as desired.  See additional 
  90.   information on the use of this feature under GET Z below.
  91.  
  92.   /V&var  Create mixed case Environment variable names.
  93.  
  94.   When you use the /V switch to create a variable name, if the first
  95.   character is an ampersand (&) the name will not be converted to
  96.   uppercase.  If you have any lowercase characters in the name, they
  97.   will remain lowercase, thus you can use all lowercase or even mixed
  98.   case.  With the above GET Z "&var" feature, you will be able to
  99.   read these variables, but they will not be available to most other
  100.   DOS programs.  Whether creating or reading a variable with &var, 
  101.   the & is not taken to be part of the name; however, any additional
  102.   embedded &'s will be used as part of the name.
  103.  
  104.   INPUT BUFFER SIZE INCREASED
  105.  
  106.   The input buffer for GET S[E] and GET Z[E] is increased to 255 
  107.   characters.  This allows longer strings to be input, especially for 
  108.   GET Z and GET ZE where the input might be from redirection or from 
  109.   an Environment variable.  The max length of the BATch command line, 
  110.   including substitution of Environment variables is still limited by 
  111.   DOS to 128 characters - can't change that.  See additional 
  112.   information on this feature under GET Z below.
  113.  
  114.   INTERNATIONAL DATES AND TIMES SUPPORTED
  115.  
  116.   The date and time functions in GET (H and F) will now report the 
  117.   dates and times in the format specified by the country code that is
  118.   currently in use.  (See additional information under GET H below.)
  119.  
  120.   SOUND BYTES with the /Sn switch.  
  121.  
  122.   Additional sound control features added for use with the /Sn switch.  
  123.   As before /S or /S0 will turn off error beeps.  /S1 (the default) 
  124.   is normal beeping using the ASCII 7 BEL character.  Now n can also 
  125.   take on values from 2 through 255 to produce various combinations 
  126.   of sounds.  This is best explained using hexadecimal input as /S$xy 
  127.   where x and y can each be from 0 through A (but must represent a 
  128.   number greater than decimal 1).
  129.  
  130.   Each hex digit (1-F) will produce a tone approximately 1/2 second 
  131.   long.  The larger the digit, the lower the tone.  A digit of 0 will 
  132.   produce no tone, thus all combinations except /S$0, /S$00, /S$1, 
  133.   and /S$01 are valid (i.e., /S$2 or /S$02 through /S$FF are valid).
  134.   Experiment to find the ones that are pleasing to your ear.
  135.  
  136.   The GET EC (ECho) command will take the /Sn switch and 
  137.   unconditionally echo the specified tones with or without a "prompt" 
  138.   specified.  All other commands that can produce beeps do so in 
  139.   response to an error condition or a timeout.  
  140.  
  141.   GET C[E] and GET S[E]                           GET user input
  142.   ---------------------------------------------------------------
  143.  
  144.   /K is a new switch to activate a countdown during the last 10 seconds 
  145.   of waiting time for /Wnum. GET C[E] and GET S[E] with the /Wn and 
  146.   /K switches for a waiting time will count the last 10 seconds as 9, 
  147.   8, ..., 0.  This gives a 10 second warning that the waiting time is 
  148.   about to expire  If an invalid key is pressed during the waiting 
  149.   time, a splat, '*', (asterisk) will be displayed which will remain 
  150.   until a valid key is pressed.
  151.  
  152.   GET SE will now echo dots (...) instead of no echo at all.
  153.  
  154.   The input buffer for GET S[E] and GET Z[E] is increased to 255 
  155.   characters.  This allows longer strings to be input, especially for 
  156.   GET Z and GET ZE where the input might be from redirection or from 
  157.   an Environment variable.  The max length of the BATch command line, 
  158.   including substitution of Environment variables is still limited by 
  159.   DOS to 128 characters - can't change that.
  160.  
  161.   GET S /C now also disables the Esc key as well as Ctrl-C/Break, but 
  162.   only if the /X switch is not included.  With /X the Esc key exit 
  163.   can easily be detected and appropriate action taken so disabling 
  164.   does not seem necessary.  The old /~ switch for GET S has been 
  165.   completely eliminated.
  166.  
  167.   Additional sound control features added for use with the /Sn switch.
  168.   See the description of the /S switch above.
  169.  
  170.   GET E                               GET Environment information
  171.   ---------------------------------------------------------------
  172.  
  173.   GET E was reporting 1 too many bytes of Environment free.  This has 
  174.   been corrected. 
  175.  
  176.   GET EC                                                     ECho
  177.   ---------------------------------------------------------------
  178.   GET EC will take the /Sn switch described above and unconditionally 
  179.   echo the specified tones with or without a "prompt" specified.  All 
  180.   other commands that can produce beeps do so in response to an error 
  181.   condition or a timeout.  
  182.  
  183.   GET H and F                                      Dates and times
  184.   ----------------------------------------------------------------
  185.   The date and time functions in GET (H and F) will now report the 
  186.   dates and times in the format specified by the country code that is
  187.   currently in use. 
  188.  
  189.   As an adjunct to this change, GET HE now reports the country code
  190.   in the ErrorLevel.  Previously GET HE reported the length of the 
  191.   date/time string which probably was of no use for any application.
  192.   If the country code is greater than 254, the ErrorLevel will be
  193.   maxed out at 255.  This would affect Portugal, Finland, Israel,
  194.   and some Arabic language countries.  Note that country codes are
  195.   usually the international telephone prefix.
  196.  
  197.   GET H[E] 2-digit year
  198.  
  199.   Code 512 has been added as an option for GET H[E].  If 512 is added 
  200.   to the coded numerical argument, the year will be placed in the
  201.   Environment as the rightmost 2 digits only.  512 can either replace
  202.   8 or it can be added to 8.  Either value will produce the 2-digit
  203.   year.  NOTE: Since the previous version it has been possible to obtain
  204.   a 2-digit year by adding /R to GET H, but there was no easy way to 
  205.   do it with GET HE.
  206.  
  207.   GET HE/FE Date format override.  The date format will 
  208.   default to the format for the country specified in DOS.  You can
  209.   override the format with the /Sn switch where n can be 0, 1, or 2
  210.   as follows:
  211.  
  212.      0    USA format     Month-Day-Year
  213.      1    Europe format  Day-Month-Year
  214.      2    Japan format   Year-Month-Day
  215.  
  216.   The date separator will retain the value for the country specified 
  217.   for the operating system, but the order of the values will change 
  218.   according to these format codes.  Note that the Japan format with a 
  219.   2-digit year would be ideal for naming files because they would 
  220.   sort properly in date order.  Use GET HE 518 /s2/a.  However, 
  221.   countries that use a '/' or '.' character for a separator cannot 
  222.   use it in a filename. Therefore another date format feature has 
  223.   also been added.  You can eliminate the separators completely by 
  224.   adding 4 to the date format code with /Sn.  Thus n can also be 4, 
  225.   5, or 6 to suppress the separators and the previous command would 
  226.   be GET HE 518 /S6. As the year 2000 rolls around you might want to 
  227.   use a 4 digit year for proper sorting.  Then the command would be 
  228.   GET HE 14 /S6.  The /A is not necessary with values of 4, 5, or 6 
  229.   because leading 0's will automatically be included.
  230.  
  231.   For example, you can create an 8 character filename incorporating 
  232.   the date with a command such as
  233.  
  234.   GET HE "XX" 518 /S6
  235.  
  236.   where XX can be any two leading characters you want.  /S6 puts the
  237.   two-digit year first to facilitate sorting, and it also eliminates
  238.   the delimiters as well as including leading 0's.
  239.  
  240.   COMPRESSED DATES with the /C switch (think C for Compressed)
  241.  
  242.   GET H and GET F /E report dates in compressed form with /C.  These
  243.   dates can be used directly to compare the dates between two files
  244.   or to compare a file date with today's date.  This date format 
  245.   does not have much visual usefulness because it is not directly 
  246.   readable as a date.  It can be used to generate unique file names
  247.   but the names will not be meaningful to view.
  248.  
  249.   To report these dates use the /C switch with either GET H /C or 
  250.   GET F filespec /E/C. Other date or file parameters will be ignored
  251.   but you can use some of the global switches such as /H to report
  252.   the output in hexadecimal.  The date format is independent of 
  253.   the Country setting and the /S switch, as well as any coded
  254.   date parameter.  These are ignored and the date is reported as 
  255.   follows.  The /C switch also overrides the Extended functions of
  256.   GET HE and GET FE/E.
  257.  
  258.   The format used is the DOS native internal file date format.  It 
  259.   uses 16 bits as follows:
  260.  
  261.       BITs  fedcba9  8765  43210
  262.       Value  Year    Month  Day
  263.   The year is relative to 1980; e.g., 1995 is 15.  Thus to convert
  264.   to meaningful numbers it is necessary to first convert to binary
  265.   format then extract the bit fields manually and convert to numbers.
  266.  
  267.   The only meaningful date arithmetic that can be done with these
  268.   numbers is to find the number of days difference but ONLY if both
  269.   numbers are within the same month.
  270.  
  271.   Examples:
  272.  
  273.   1. Compare two file dates.
  274.  
  275.      GET F file1 /C/E/VF1=
  276.      GET F file2 /C/E/VF2=
  277.      GET R "=" %F1% /W%F2%
  278.  
  279.      Note that GET R returns the values
  280.        0 if F1<F2
  281.        1 if F1=F2
  282.        2 if F1>F2
  283.  
  284.   2. Compare a file date with today's date.
  285.  
  286.      GET H /C /VTODAY=
  287.      GET F file /C/E/VFDATE=
  288.      GET R "=" %FDATE% /W%TODAY%
  289.  
  290.      Remember that the GET HE 14 function can be used to save today's
  291.      date, then you can set the system date with the DOS DATE command, 
  292.      and finally you can reset it from the saved date.  That provides
  293.      the capability to compare a file date with any selected date.
  294.  
  295.   3. Find how many days older than today the file is.
  296.      The first check is to see if they are in the same month,
  297.      assuming that the same month is in the current year.
  298.  
  299.      GET H 4 /VTODAY=
  300.      GET F %1 /E/W4/VFDATE=
  301.      if "%TODAY%"=="%FDATE%" goto COMPARE
  302.      ECHO The months do not compare
  303.      goto QUIT
  304.      :COMPARE
  305.      GET H /C /VTODAY=
  306.      GET F %1 /C/E/VFDATE=
  307.      GET R "-" %TODAY% /W%FDATE%
  308.      Echo The file is %GET% days old
  309.      :QUIT
  310.  
  311.   GET F[E] /E                                        GET File Date
  312.   ----------------------------------------------------------------
  313.   See information above under GET H for new date/time formats.
  314.  
  315.   GET FE filespec /E/Wnum can now include seconds (code 64).
  316.   
  317.   GET FP        This is a NEW function               GET Full Path       
  318.   ----------------------------------------------------------------
  319.   GET FP returns same information as MS-DOS 5.0's TRUENAME command. 
  320.     (GET FP requires DOS 3.0 or later).
  321.  
  322.   Syntax:  GET FP filespec
  323.  
  324.   For a given filespec GET FP returns the full path leading to that 
  325.   file. Letters are converted to uppercase, and forward slashes are 
  326.   converted to backslashes; however, if you use forward slashes you 
  327.   must enclose the filespec in single quotes (e.g. 'filespec').
  328.  
  329.   The ErrorLevel is the subdirectory level similar to GET Y.
  330.  
  331.   Note that the filespec does not have to exist and this is not a 
  332.   test for existence of a given file.  The full path that is returned
  333.   will be the one to the filespec as if it did exist.  If a test for
  334.   existence is required, GET F can be applied to the result of GET 
  335.   FP, or you can use the DOS IF EXIST subcommand. 
  336.  
  337.   If the filespec given is the name of a directory, it must end in a
  338.   backslash (\).  Examples: GET FP C:\DOS\ or GET FP \DOS\.  If no 
  339.   filespec is given, the current directory on the logged drive will
  340.   be returned.  If just a drive specification is given, the colon (:) 
  341.   is required and the current directory on that drive will be 
  342.   returned.
  343.  
  344.   If the given path string is on a JOINed drive, the returned name is
  345.   the one that would be needed if the drive were not JOINed.  
  346.   Similarly for a SUBSTed, ASSIGNed, or network drive letter.  The
  347.   full path on a local drive always starts with the drive letter (d:),
  348.   those on network drives always start with \\.
  349.  
  350.   EXAMPLES:
  351.  
  352.   1. Use GET FP to get the full path for a file named TEST.EXE.
  353.  
  354.       subst d: c:\util\test
  355.       GET FP d:\test.exe
  356.     And the result is
  357.       C:\UTIL\TEST\TEST.EXE
  358.  
  359.   2. Find the current directory on a drive other than the logged 
  360.      drive.  (The colon is required).
  361.  
  362.      GET FP e:
  363.     And the result is (if the current directory on E: is \CURRENT).
  364.      E:\CURRENT
  365.  
  366.   3. Find the parent directory of the current directory on drive E:
  367.  
  368.      GET FP E:..
  369.     And the result is (if the current directory on E: is \CURRENT).
  370.      E:\
  371.     Note that the parent directory of the root directory does not
  372.     exist so such a result would be no Environment variable and
  373.     an ErrorLevel of 0.
  374.  
  375.   GET FP requires MS-DOS or PC-DOS 3.0 or above, DR DOS or Novell DOS 
  376.   6.0 or above, or OS/2 version 2.0 or above. It may not be able to
  377.   determine the true name if you use "nested" JOIN or SUBST commands,
  378.   or on a network which does not report true names properly.
  379.  
  380.   GET K, Q, and L                             GET Disk information
  381.   ----------------------------------------------------------------
  382.   GET K, Q, and L  /A switch
  383.  
  384.   These functions test for a readable diskette in the drive if used
  385.   for drives A: and B:.  Two methods of testing are available-- 
  386.   a standard DOS method, and one that is used in an OS/2 VDM.  The 
  387.   DOS method is faster in DOS but slower and less reliable under 
  388.   OS/2. If the default DOS method does not give the desired results 
  389.   for something you want to do, you can try the /A (for Alternate 
  390.   method) switch to force GET to use the same method that is used 
  391.   under OS/2.  This is the method used by older versions of GET such 
  392.   as 2.5, and it can be very slow if there is an unformatted diskette 
  393.   in the drive.  Remember, the two methods return different error 
  394.   codes as described in the manual.
  395.  
  396.   When used on drives other than A: and B: in previous versions of 
  397.   GET, this test often failed due to technical reasons even
  398.   if valid media was in place, and it interfered with obtaining the
  399.   size or label of some drives such as removable and network drives.
  400.  
  401.   GET K, Q, and L /X switch
  402.  
  403.   A /X switch has been added to check for a writeable disk in drive A: 
  404.   or B:. First GET checks for a formatted disk in the usual manner 
  405.   of GET Q, K, and L.  If this test fails, the ErrorLevel will be 0 and 
  406.   the return code in the Environment.  If this test passes, then an 
  407.   attempt is made to write to the disk, but no data will actually be 
  408.   written. If the disk is write protected an ErrorLevel of 0 and an 
  409.   Environment variable (error code) of 3 will be reported.  If the 
  410.   status cannot be determined, an ErrorLevel and Environment variable 
  411.   of 0 are reported.  If these tests are passed, then the normal return
  412.   from GET K, Q, or L will be reported.
  413.  
  414.   The read and write tests will always be bypassed if the drive is 
  415.   other than A: or B:.  This may be inconvenient for those rare users 
  416.   who have a 3rd floppy drive other than A: or B:, but it should be 
  417.   usable in 99.44% of the cases.  It also does not test other types
  418.   of drives with removable media such as Bernoulli drives.  The
  419.   benefit of this restriction is that it permits obtaining size and
  420.   label information on more types of drives including possibly some
  421.   network drives. This benefit is thought to more than compensate for
  422.   the occasional Abort, Retry, Ignore type message on the odd
  423.   removable drive other than A: or B:.
  424.  
  425.   GET P[E]                                GET Printer information
  426.   ---------------------------------------------------------------
  427.   GET P[E] now takes an optional prompt.  Thus you can announce to
  428.   the user what is happening without a separate Echo; e.g.
  429.  
  430.   GET PE "Initializing the printer"
  431.   The usual ECho switches /N and /A can be used.
  432.  
  433.   GET Q[E]                                          GET Disk Size
  434.   ---------------------------------------------------------------
  435.   See the information under GET K above.
  436.  
  437.   GET R                                                'Rithmetic
  438.   ---------------------------------------------------------------
  439.   Additional logical math functions added to GET R:
  440.  
  441.     & Bitwise logical AND
  442.     Syntax: GET R "&" num1 /wnum2
  443.     Result: num1 AND num2
  444.  
  445.     # Bitwise logical OR
  446.     Syntax: GET R "#" num1 /wnum2
  447.     Result: num1 OR num2
  448.  
  449.     ^ Bitwise logical XOR
  450.     Syntax: GET R "^" num1 /wnum2
  451.     Result: num1 XOR num2
  452.  
  453.     ~ Bitwise logical NOT
  454.     Syntax: GET R "~" num1
  455.     Result: NOT num1
  456.  
  457.   GET S[E]                                             GET String     
  458.   ---------------------------------------------------------------
  459.   See the information under GET C above.
  460.  
  461.   GET Y[E]                            Drive/Directory information
  462.   ---------------------------------------------------------------
  463.   BOOT DRIVE:  The /X switch with GET YE reports the Boot drive using
  464.   the same codes and format as GET YE. This feature may require DOS 4.0
  465.   or later.
  466.  
  467.  
  468.   GET Z[E]                                                    Zap
  469.   ---------------------------------------------------------------
  470.   The input buffer for GET S[E] and GET Z[E] is increased to 255 
  471.   characters.  This allows longer strings to be input, especially for 
  472.   GET Z and GET ZE where the input might be from redirection or from 
  473.   an Environment variable.  The max length of the BATch command line, 
  474.   including substitution of Environment variables is still limited by 
  475.   DOS to 128 characters - can't change that.
  476.  
  477.   With GET you can, for example, put a PATH longer than 128 characters 
  478.   into the Environment.  While it is not recommended, it is possible.  
  479.   One way to do it with GET is to put your desired long PATH into a 
  480.   one-line text file ending in a carriage return, then read it in 
  481.   with GET.  For example, if your long PATH is in the file 
  482.   LONGPATH.TXT you can use
  483.  
  484.    GET ZE /VPATH= <LONGPATH.TXT >NUL
  485.  
  486.    By redirecting the output with >NUL you suppress the echo
  487.    that is produced by DOS when reading the file.
  488.  
  489.   GET Z "&VAR" 
  490.  
  491.   This is an intriguing addition to GET which may have some interesting
  492.    applications.  Consider the following BATch file:
  493.  
  494.    for %%a in (1 2 3) do set var%%a=%%a
  495.    for %%a in (1 2 3) do echo %VAR%%a%
  496.  
  497.    In general the echo in the second line will not echo the contents of
  498.    VAR1, VAR2, and VAR3 because DOS does not recursively parse such a
  499.    statement.  I.e. after DOS substitutes for %%a to get %VAR1%, it 
  500.    does not again parse the line to get the value of VAR1.  We could 
  501.    try several different variations of this theme, including calling
  502.    a subroutine BATch file, but in general DOS will not parse the
  503.    lines in the way that we would like it to.
  504.  
  505.    Note that we can write it so that 4DOS will parse it correctly, 
  506.    and by a convoluted method DOS can be tricked into doing it, but it
  507.    requires echoing statements out to a temporary BATch file, and 
  508.    executing the temporary file.  However, now we can do it more 
  509.    easily with GET.
  510.  
  511.    The new feature permits GET to read variables directly from the 
  512.    Environment, given the variable name.  The above statements can
  513.    then be written as follows to achieve the desired result:
  514.  
  515.    for %%a in (1 2 3) do set var%%a=%%a
  516.    for %%a in (1 2 3) do call echoget %%a
  517.  
  518.    ECHOGET.BAT as called is:
  519.  
  520.    get z "&VAR%1"
  521.    Echo %GET%
  522.  
  523.    Note the ampersand in GET Z "&VAR%1".  New for GET Z is if the first 
  524.    character of the string is an '&', the remainder of the string will 
  525.    be interpreted as the name of an Environment variable to be read
  526.    into GET's Environment variable - either GET or /Vvar=.  As seen in 
  527.    the example this permits a pseudo indexing of variables; e.g. VAR1,
  528.    VAR2, VAR3, etc.  The value of each can be set into the GET 
  529.    variable to be operated on by generic BATch statements.  The GET R 
  530.    function could be used to increment the index, for example.
  531.  
  532.    Suppose you want to operate on a list of files.  The file names 
  533.    could be loaded into the environment by SETting FILE1=filename1,
  534.    FILE2=filename2, etc. These names can be extracted by GET Z "&VAR",
  535.    maybe something like this:
  536.  
  537.    @Echo off
  538.    Rem Create a temporary auxiliary file:
  539.    Echo GET R %%N%% /W1 /VN= >LISTFILE.BAT
  540.    Echo GET Z "%%1" /VFILE%%N%%=>>LISTFILE.BAT
  541.    set N=0
  542.    Rem The next line puts the names of all the BAT files
  543.    Rem  into the Environment as FILE1, FILE2, etc.
  544.    For %%a in (*.bat) do call listfile %%a
  545.    del listfile.bat
  546.    set J=0
  547.    Rem Now for DEMO purposes, list out the file names.
  548.    Rem They could just as easily be operated on in some way.
  549.    :LOOP
  550.    GET R %J% /W1 /VJ=
  551.    GET Z "&FILE%J%"
  552.    Echo File %J% is %GET%
  553.    set FILE%J%=
  554.    IF NOT "%J%"=="%N%" GOTO LOOP
  555.    set N=
  556.    set J=
  557.    set GET=
  558.  
  559.   Another advantage of this enhancement is that long variable values 
  560.   can be transferred, which might otherwise cause the BATch command 
  561.   line to be longer than 128 bytes if DOS does the substitution; for 
  562.   example a long PATH string.  The usual skip arg and /Wmax switch 
  563.   can then be used to operate on these longer strings.  To 
  564.   accommodate longer strings, the input buffer has been expanded to 
  565.   255 characters.
  566.  
  567.   When the /M (for Master Environment) switch is used with GET Z 
  568.   "&var", GET will look for the variable in the Master Environment, 
  569.   and if the string is found will store it in the local Environment 
  570.   (which may be the same if there is no secondary command processor, 
  571.   of course.)  This is a different use of the /M switch from other 
  572.   commands, and it provides a means to retrieve a string which was 
  573.   stored in the master environment.
  574.  
  575.   Finally, the &var feature is case sensitive.  Most Environment 
  576.   variable names are in upper case.  A notable exception is the 
  577.   'windir' variable that Microsoft Windows places in the Environment 
  578.   of DOS sessions.  GET Z "&windir" will retrieve this variable if it 
  579.   is needed for some reason; however, this means the BATch programmer 
  580.   must take care to put other BATch Environment variable names in 
  581.   upper case for the &VAR feature.  
  582.  
  583.   RUNTIME Version for Registered users
  584.   ---------------------------------------------------------------
  585.   The registered runtime version never displays the copyright notice 
  586.   except when it is called with no valid arguments.  The runtime version
  587.   for registered users is under 6K in size.
  588.  
  589.   For the convenience of registered users who are developing BATch
  590.   files, and want to use the runtime module for development to avoid 
  591.   the periodic display of the copyright notice, the GET?=ON feature
  592.   has been added to the runtime module.  With GET?=ON either GET
  593.   module will report the values that it places in the Environment
  594.   and the ErrorLevel for debugging purposes.
  595.  
  596.   If you do use the runtime module as suggested, yet you like to have 
  597.   the help screens from the shareware module available for use, I 
  598.   suggest using one of the following methods:
  599.  
  600.   (a) Use redirection to capture the help screens to a file and use a 
  601.       text editor or file viewer to read the file. It is very useful 
  602.       to load this file into a window in your text editor when you 
  603.       are editing BATch files for quick reference.  
  604.  
  605.   (b) For convenience, GET27.HLP which is a copy of the help screens
  606.       has been included which can be used as above.
  607.  
  608.   (c) Keep GET27.EXE in your path and run it when you want to view the 
  609.       help screens.
  610.   -----------------------------------------------------------------------
  611.   Questions, comments, and suggestions are always welcome. Contact us at:
  612.       MOBY DISK: 1021 San Carlos Road, Pebble Beach, CA 93953
  613.   Phone: (408) 646-1899  COMPUSERVE:72357,2276  America Online: MobyDisk2
  614.   Internet: bob.stephan@nitelog.com             BBS: Nitelog 408-655-1096
  615.   BBS: The Cricket 408-373-3773       /s/ Bob Stephan        May 21, 1995
  616.